//------------------------------------------------------------------------------------
//CONSTANTES
//------------------------------------------------------------------------------------
var prefijoControl = "ctl0_cphContent_";
var WIDTH_MENSAJE_RESPUESTA = "50%";
var HEIGHT_MENSAJE_RESPUESTA = 15;

//----------------------------------------------------------------------------------------------------------------
//Descripcion: valida los datos ingresados en el formulario de busqueda
//Por        : VSR, 01/01/2011
function validarFormularioBusquedaUsuario(){
  validationEngineClearCountCustomError();
  var retorno = jQuery(NOMBRE_FORM_PRADO_JQUERY).validationEngine({returnIsValid: true});
  if (retorno) {
    var textoModal = generarTextoHtmlModal("Procesando, espere un momento por favor...");
    jQuery.modal(textoModal,{minHeight: HEIGHT_MENSAJE_RESPUESTA, minWidth: WIDTH_MENSAJE_RESPUESTA});
  }
  return retorno;
}

//----------------------------------------------------------------------------------------------------------------
//Descripcion: valida los datos ingresados en el formulario de busqueda
//Por        : VSR, 15/05/2012
//NOTA       : si se quiere hacer una validacion, se debe quitar la funcion e incluir las validaciones personalizadas
function validarFormularioBusquedaWF(){
  return validarFormularioBusquedaUsuario();
}

//-------------------------------------------------------------------------------------
//Descripcion : valida los datos ingresados en el formulario detalle
//Por         : VSR, 01/01/2011
function validarFormularioUsuario(){
  validationEngineClearCountCustomError();
  var txtUsername = document.getElementById("txtUsername");
  var txtPassword = document.getElementById("txtPassword");
  var txtRepetirPassword = document.getElementById("txtRepetirPassword");
  var txtExisteUsername = document.getElementById("txtExisteUsername");
  var txtIdUsuario = document.getElementById("txtIdUsuario");
  var txtRut = document.getElementById("txtRut");
  var txtExisteRut = document.getElementById("txtExisteRut");
  var ddlPerfil = document.getElementById("ddlPerfil");

  //valida USERNAME
  if(IsValid_Empty(txtUsername)){
    jQuery.validationEngine.addPromptError("txtUsername", "* Este campo es requerido");
  }
  else{
    if(!IsValid_CaracteresPermitidos(txtUsername)){
      jQuery.validationEngine.addPromptError("txtUsername", "* Contiene caracteres no permitidos: " + CARACTERES_NO_VALIDOS_SIN_SEPARADOR);
    }
    else if(txtExisteUsername.value=="1"){
      jQuery.validationEngine.addPromptError("txtUsername", "* No disponible, ya existe");
    }
    else{
      jQuery.validationEngine.removePrompt("txtUsername");
    }
  }

  //valida PASSWORD
  if(IsValid_Empty(txtPassword)){
    if(txtIdUsuario.value=="0"){
      jQuery.validationEngine.addPromptError("txtPassword", "* Este campo es requerido");
    }
    else{
      jQuery.validationEngine.removePrompt("txtPassword");
    }
  }
  else{
    if(!IsValid_CaracteresPermitidos(txtPassword)){
      jQuery.validationEngine.addPromptError("txtPassword", "* Contiene caracteres no permitidos: " + CARACTERES_NO_VALIDOS_SIN_SEPARADOR);
    }
    else if(txtPassword.value != txtRepetirPassword.value){
      jQuery.validationEngine.addPromptError("txtRepetirPassword", "* La clave no coincide");
    }
    else{
      jQuery.validationEngine.removePrompt("txtPassword");
      jQuery.validationEngine.removePrompt("txtRepetirPassword");
    }
  }

  //valida RUT
  if(!IsValid_Empty(txtRut)){
    if(!IsValid_Rut(txtRut)){
      jQuery.validationEngine.addPromptError("txtRut", "* Rut no v&aacute;lido");
    }
    else if(txtExisteRut.value=="1"){
      jQuery.validationEngine.addPromptError("txtRut", "* No disponible, ya existe");
    }
    else{
      jQuery.validationEngine.removePrompt("txtRut");
    }
  }
  else{
    jQuery.validationEngine.removePrompt("txtRut");
  }

  //valida PERFIL (solo si es un combo)
  if (ddlPerfil.type == "select-one") {
    if(IsValid_ComboVacio(ddlPerfil)){
      jQuery.validationEngine.addPromptError("ddlPerfil", "* Este campo es requerido");
    }
    else{
      jQuery.validationEngine.removePrompt("ddlPerfil");
    }
  }

  //valida campos especiales
  validarCamposEspeciales();

  var retorno = jQuery(NOMBRE_FORM_NORMAL_JQUERY).validationEngine({returnIsValid: true});
  if (retorno) {
    var textoModal = generarTextoHtmlModal("Procesando, espere un momento por favor...");
    jQuery.modal(textoModal,{minHeight: HEIGHT_MENSAJE_RESPUESTA, minWidth: WIDTH_MENSAJE_RESPUESTA});
  }

  return retorno;

}

//----------------------------------------------------------------------------------------------------------------
//Descripcion: valida los datos ingresados en el formulario de mis Datos
//Por        : VSR, 01/01/2011
function validarFormularioMisDatos() {
  validationEngineClearCountCustomError();
  txtPassword = document.getElementById(prefijoControl + "txtPassword");
  txtRepetirPassword = document.getElementById(prefijoControl + "txtRepetirPassword");

  //valida PASSWORD
  if (!IsValid_Empty(txtPassword) || !IsValid_Empty(txtRepetirPassword)) {
    if (!IsValid_Empty(txtPassword) && !IsValid_CaracteresPermitidos(txtPassword)) {
      jQuery.validationEngine.addPromptError(prefijoControl + "txtPassword", "* Contiene caracteres no permitidos: " + CARACTERES_NO_VALIDOS_SIN_SEPARADOR);
    }
    else if (txtPassword.value != txtRepetirPassword.value) {
      jQuery.validationEngine.addPromptError(prefijoControl + "txtRepetirPassword", "* La clave no coincide");
    }
    else {
      jQuery.validationEngine.removePrompt(prefijoControl + "txtPassword");
      jQuery.validationEngine.removePrompt(prefijoControl + "txtRepetirPassword");
    }
  }

  //valida los datos de la direccion
  if (typeof (WBD_ValidarFormularioDireccion) == "function") {GEN_MostrarMensajesError(WBD_ValidarFormularioDireccion());}

  var retorno = jQuery(NOMBRE_FORM_PRADO_JQUERY).validationEngine({returnIsValid: true});
  return retorno;
}

//------------------------------------------------------------------------------------
//Descripcion: cierra el pop up y recarga los documentos asociados
//Por        : VSR, 01/01/2011
function cerrarPopUpUsuario(id,valorCargarDesdePopUp, filtroTexto) {
  //al salir llama al metodo para cargar la tabla con los observaciones asociados al caso fraude
  if(valorCargarDesdePopUp == "1"){
    parent.cargarDesdePopUpUsuario(valorCargarDesdePopUp, filtroTexto);
    parent.document.forms[0].submit();
  }
  parent.jQuery.fancybox.close();
}

//------------------------------------------------------------------------------------
//Descripcion: cierra el pop up y recarga los documentos asociados
//Por        : VSR, 01/01/2011
function cargarDesdePopUpUsuario(valor, filtroTexto){
  var txtCargaDesdePopUp = document.getElementById(prefijoControl +"txtCargaDesdePopUp");
  var txtFiltroUsername = document.getElementById(prefijoControl +"txtFiltroUsername");
  txtCargaDesdePopUp.value = valor;
  filtroTexto = Url.decode(filtroTexto);
  filtroTexto = filtroTexto.replace(/\+/g, " ");
  if(filtroTexto != "" ) txtFiltroUsername.value = filtroTexto;

  var textoModal = generarTextoHtmlModal("Actualizando b&uacute;squeda, espere un momento por favor...");
  jQuery.modal(textoModal,{minHeight: HEIGHT_MENSAJE_RESPUESTA, minWidth: WIDTH_MENSAJE_RESPUESTA});
}

//------------------------------------------------------------------------------------
//Descripcion: abre formulario para ingresar o modificar un nuevo usuario
//Por        : VSR, 01/01/2011
function abrirFormularioUsuario(id){
  jQuery.fancybox({
    width: "98%",
    height: "95%",
    modal: true,
    type: "iframe",
    href: "index.php?page=Usuario.AdmDetalle&id=" + id
  });
}

//------------------------------------------------------------------------------------
//Descripcion: abre formulario para ingresar o modificar un nuevo usuario
//Por        : VSR, 15/05/2012
function abrirFormularioUsuarioWF(id, idEmpresa){
  jQuery.fancybox({
    width: "98%",
    height: "95%",
    modal: true,
    type: "iframe",
    href: "index.php?page=Workflow.FrmUsuario&id="+ id +"&idEmpresa="+ idEmpresa
  });
}

//-------------------------------------------------------------------------------------
//Descripcion : setea el estilo del campo repetir password
//Por         : VSR, 01/01/2011
function setearRepetirPassword(){
  var txtPassword = document.getElementById("txtPassword");
  var txtRepetirPassword = document.getElementById("txtRepetirPassword");

  //si el campo Clave esta vacio entonces el Repetir Clave esta desactivado
  //sino lo activa
  if(IsValid_Empty(txtPassword)){
    formatearEstiloNormal(txtRepetirPassword,"", true, true, "", "");
  }
  else{
    formatearEstiloNormal(txtRepetirPassword,"", true, false, "", "");
  }
}

//--------------------------------------------------------------------------------------------
//Descripcion : valida los permisos asignados y dibuja la matriz de permisos
//Por         : VSR, 01/01/2011
function validarPermisos(){
  var txtIdUsuario = document.getElementById("txtIdUsuario");
  var ddlPerfil = document.getElementById("ddlPerfil");
  var txtIdPerfilActual = document.getElementById("txtIdPerfilActual");
  var txtEliminarAsignaciones = document.getElementById("txtEliminarAsignaciones");
  var txtLlavePerfil = document.getElementById("txtLlavePerfil");
  var txtProvieneDesde = document.getElementById("txtProvieneDesde");
  var eliminarTodosPermisos = "0";
  var dibujarMatriz = true;

  if(txtEliminarAsignaciones.value=="0" && tienePermisosAsignados()){
    if(confirm("Tiene permisos asignados y si cambia de perfil se desmarcarán todos.\n¿Desea continuar?")){
      eliminarTodosPermisos = "1";
      dibujarMatriz = true;
      txtEliminarAsignaciones.value = "1";
    }
    else{
      dibujarMatriz = false;
      ddlPerfil.value = txtIdPerfilActual.value;
    }
  }
  else{
    eliminarTodosPermisos = txtEliminarAsignaciones.value;
    dibujarMatriz = true;
  }

  if(dibujarMatriz){
    obtenerLlavePerfil("ddlPerfil","txtLlavePerfil");
    mostrarControlesEspeciales();
    dibujarMatrizPermiso("hMatrizPermiso", ddlPerfil.value, txtIdUsuario.value, eliminarTodosPermisos, txtLlavePerfil.value, txtProvieneDesde.value);
  }
}

//--------------------------------------------------------------------------------------------
//Descripcion : dibuja la matriz de permiso
//Por         : VSR, 01/01/2011
function dibujarMatrizPermiso(elHolerMatriz, idPerfil, idUsuario, eliminarTodosPermisos, llavePerfil, provieneDesde){
  var hMatrizPermiso = document.getElementById(elHolerMatriz);
  var queryString = "";
  var queryStringUpdate = "";
  var themeBaseUrl = obtenerThemeBaseUrl();

  //setea algunos valores
  eliminarTodosPermisos = (eliminarTodosPermisos == "") ? "0" : eliminarTodosPermisos;

  //construye queryString
  queryString += "page=Usuario.HttpAjax";
  queryString += "&op=DibujarMatrizPermiso";
  queryString += "&idUsuario=$idu";
  queryString += "&idp=$idp";
  queryString += "&eli=$eli";
  queryString += "&themeBaseUrl=$theme";
  queryString += "&provieneDesde=$provieneDesde";

  //formate la URL con los parametros verdaderos
  queryStringUpdate = queryString.replace("$idp", Url.encode(idPerfil));
  queryStringUpdate = queryStringUpdate.replace("$idu", Url.encode(idUsuario));
  queryStringUpdate = queryStringUpdate.replace("$eli", Url.encode(eliminarTodosPermisos));
  queryStringUpdate = queryStringUpdate.replace("$theme", Url.encode(themeBaseUrl));
  queryStringUpdate = queryStringUpdate.replace("$provieneDesde", Url.encode(provieneDesde));

  if (idPerfil != "-100" && llavePerfil != KEY_PERFIL_ADMINISTRADOR) {
      hMatrizPermiso.innerHTML = "<img src='"+ themeBaseUrl +"/img/autocomplete_spinner.gif' border='0' align='absmiddle'>&nbsp;<span style='color:#999999'>obtiendo datos, espere un momento...</span>";
      var okFunc = function(t) {
          var respuesta = jQuery.trim(t);
          if (respuesta == CONST_CODIGO_SQL_ERROR) {
              hMatrizPermiso.innerHTML = "&nbsp;<span class='ico16-error'><img src='"+ themeBaseUrl +"/img/_blank.gif' class='ico16' alt='' /></span>&nbsp;<span class='cssMensajeError'>Ha ocurrido un error interno y no se pudo obtener el valor.</span>";
          }
          else {
              hMatrizPermiso.innerHTML = respuesta;
          }
      }
      var errFunc = function(t) {
          hMatrizPermiso.innerHTML = "&nbsp;<span class='ico16-error'><img src='"+ themeBaseUrl +"/img/_blank.gif' class='ico16' alt='' /></span>&nbsp;<span class='cssMensajeError'>Ha ocurrido un error interno y no se pudo obtener el valor.</span>";
      }
      jQuery.ajax({
          url: "index.php",
          type: "post",
          async: false,
          data: queryStringUpdate,
          success: okFunc,
          error: errFunc
      });
  }
  else {
      hMatrizPermiso.innerHTML = "";
  }
  
  //activa los check que marcan todos los permisos de una pagina
  jQuery(".chk-all").marcarCheckPermisosPagina();
}

//--------------------------------------------------------------------------------------------
//Descripcion : determina si tiene permisos asignados en la matriz, retornando verdadero o falso
//Por         : VSR, 01/01/2011
function tienePermisosAsignados() {
  var txtTotalCategorias = document.getElementById("txtTotalCategorias");
  var txtTotalPaginas;
  var txtTotalFuncionesAsignadas;
  var totalAsignaciones = 0;
  var tienePermisos = false;

  //recorre las categorias
  if (txtTotalCategorias) {
    for (var i = 1; i <= txtTotalCategorias.value; i++) {
      txtTotalPaginas = document.getElementById("Cat" + i + "_txtTotalPaginas");
      //recorre las paginas de las categorias
      if (txtTotalPaginas) {
        for (var j = 1; j <= txtTotalPaginas.value; j++) {
          txtTotalFuncionesAsignadas = document.getElementById("Cat" + i + "_Pag" + j + "_txtTotalFuncionesAsignadas");
          //suma todas las funciones asignadas
          if (txtTotalFuncionesAsignadas) totalAsignaciones += txtTotalFuncionesAsignadas.value;
        }
      }
    }
  }
  //si tiene funciones asignadas retorna verdadero
  if (totalAsignaciones > 0) tienePermisos = true;
  //retorna valor
  return tienePermisos;
}

//--------------------------------------------------------------------------------------------
//Descripcion : comprueba si el valor ya existe en base de datos
//Por         : VSR, 01/01/2011
function comprobarDuplicidadDatoUsuario(id, elTxtBox, elContenedorRespuestaTxt, elContenedorRespuestaDiv, opcion) {
  var txtObj = document.getElementById(elTxtBox);
  var txtContenedor = document.getElementById(elContenedorRespuestaTxt);
  var divContenedor = document.getElementById(elContenedorRespuestaDiv);
  var queryString = "";
  var queryStringUpdate = "";
  var valorComparar = "";
  var themeBaseUrl = obtenerThemeBaseUrl();

  if(!IsValid_Empty(txtObj)) {
    //construye queryString
    queryString += "page=Usuario.HttpAjax";
    queryString += "&id="+ Url.encode(id);
    queryString += "&valor="+ Url.encode(txtObj.value);
    queryString += "&op="+ Url.encode(opcion);

    var okFunc = function(t) {
      var respuesta = jQuery.trim(t);
      if (respuesta == CONST_CODIGO_SQL_ERROR) {
        divContenedor.innerHTML = "&nbsp;<span class='ico16-error'><img src='"+ themeBaseUrl +"/img/_blank.gif' class='ico16' alt='' /></span>&nbsp;<span class='cssMensajeError'>Ha ocurrido un error interno y no se pudo obtener el valor.</span>";
        txtContenedor.value = "0";
      }
      else {
        //si el valor esta duplicado entonces muestra mensaje de Ocupado
        if (respuesta == 1) {
          divContenedor.innerHTML = "&nbsp;<span class='ico16-error'><img src='"+ themeBaseUrl +"/img/_blank.gif' class='ico16' alt='' /></span>&nbsp;<span class='cssMensajeError'>No disponible</span>";
        }
        else {
          divContenedor.innerHTML = "&nbsp;<span class='ico16-ticket'><img src='"+ themeBaseUrl +"/img/_blank.gif' class='ico16' alt='' /></span>&nbsp;<span class='cssMensajeExito'>Disponible</span>";
        }
        txtContenedor.value = respuesta;
      }
    }
    var errFunc = function(t) {
      divContenedor.innerHTML = "&nbsp;<span class='ico16-error'><img src='"+ themeBaseUrl +"/img/_blank.gif' class='ico16' alt='' /></span>&nbsp;<span class='cssMensajeError'>Ha ocurrido un error interno y no se pudo obtener el valor.</span>";
    }
    jQuery.ajax({
      url: "index.php",
      type: "post",
      async: false,
      data: queryString,
      success: okFunc,
      error: errFunc
    });
  } else {
    divContenedor.innerHTML = "";
    txtContenedor.value = "0";
  }

}

//-------------------------------------------------------------------------------------
//Descripcion : obtiene la llave del perfil seleccionado
//Por         : VSR, 01/01/2011
function obtenerLlavePerfil(elemOrigen, elemDestino) {
  var oOrigen = document.getElementById(elemOrigen);
  var oDestino = document.getElementById(elemDestino);
  var queryString = "";

  if (oOrigen && oDestino) {
    if (IsValid_ComboVacio(oOrigen)) {
      oDestino.value = "";
    }
    else {
      queryString += "page=Usuario.HttpAjax";
      queryString += "&op=ObtenerLlavePerfil";
      queryString += "&idp=" + oOrigen.value;

      //invoca al metodo de Ajax de la libreria prototype.js
      var okFunc = function(t) {
        var respuesta = jQuery.trim(t);
        if (contieneTextoTerminoSesion(respuesta)) {
          redireccionarLogin();
        }
        else if (respuesta == CONST_CODIGO_SQL_ERROR) {
          alert("Ha ocurrido un error interno y no se pudo obtener el valor.");
          oDestino.value = "";
        }
        else {
          oDestino.value = respuesta;
        }
      }
      var errFunc = function(t) {
        alert("Ha ocurrido un error interno y no se pudo obtener el valor.");
        oDestino.value = "";
      }
      jQuery.ajax({
        url: "index.php",
        type: "post",
        async: false,
        data: queryString,
        success: okFunc,
        error: errFunc
      });
    }
  }
}

//----------------------------------------------------------------------------------------
//Descripcion : valida si se desea eliminar la pagina
//Por         : VSR, 01/01/2011
function validarEliminar() {
  if (confirm("Si elimina el usuario se perderán todas las referencias asociadas a él y no se podrán recuperar\n¿Desea eliminar el usuario?")) {
    return true;
  } else {
    return false;
  }
}

//-------------------------------------------------------------------------------------
//Descripcion : elimina un usuario
//Por         : VSR, 22/03/2011
function eliminarUsuario(idUsuario) {
  var txtCargaDesdePopUp = document.getElementById(prefijoControl + "txtCargaDesdePopUp");
  var queryString = "";

  try {
    //construye queryString
    queryString += "page=Usuario.HttpAjax";
    queryString += "&op=EliminarUsuario";
    queryString += "&idUsuario=" + Url.encode(idUsuario);

    if (confirm("¿Esta seguro de eliminar el registro?")) {
      var textoModal = generarTextoHtmlModal("Eliminando usuario, espere un momento por favor...");
      jQuery.modal(textoModal,{minHeight: HEIGHT_MENSAJE_RESPUESTA, minWidth: WIDTH_MENSAJE_RESPUESTA});

      var okFunc = function(t) {
        var respuesta = jQuery.trim(t);
        if (contieneTextoTerminoSesion(respuesta)) {
          redireccionarLogin();
        }
        else if (respuesta == CONST_CODIGO_SQL_ERROR) {
          alert("Ha ocurrido un error interno y no se pudo eliminar el registro");
        }
        else {
          txtCargaDesdePopUp.value = "1";
          document.forms[0].submit();
        }
      }
      var errFunc = function(t) {
        alert("Ha ocurrido un error interno y no se pudo eliminar el registro");
      }
      jQuery.ajax({
        url: "index.php",
        type: "post",
        async: false,
        data: queryString,
        success: okFunc,
        error: errFunc
      });
    }
  }
  catch (e) {
    if (e.description) { //para IE
      alert("Exception:\n" + e.description)
    }
    else { // otro navegador
      alert("Exception:\n" + e)
    }
    return false;
  }
}

//-------------------------------------------------------------------------------------
//Descripcion : valida los datos ingresados en el formulario detalle
//Por         : VSR, 30/10/2011
function validarFormularioUsuarioRegistrar(){
  validationEngineClearCountCustomError();
  var txtUsername = document.getElementById(prefijoControl + "txtUsername");
  var txtPassword = document.getElementById(prefijoControl + "txtPassword");
  var txtRepetirPassword = document.getElementById(prefijoControl + "txtRepetirPassword");
  var txtExisteUsername = document.getElementById(prefijoControl + "txtExisteUsername");

  //valida USERNAME
  if(IsValid_Empty(txtUsername)){
    jQuery.validationEngine.addPromptError(prefijoControl + "txtUsername", "* Este campo es requerido");
  }
  else{
    if(!IsValid_CaracteresPermitidos(txtUsername)){
      jQuery.validationEngine.addPromptError(prefijoControl + "txtUsername", "* Contiene caracteres no permitidos: " + CARACTERES_NO_VALIDOS_SIN_SEPARADOR);
    }
    else if(txtExisteUsername.value=="1"){
      jQuery.validationEngine.addPromptError(prefijoControl + "txtUsername", "* No disponible, ya existe");
    }
    else{
      jQuery.validationEngine.removePrompt(prefijoControl + "txtUsername");
    }
  }

  //valida PASSWORD
  if(IsValid_Empty(txtPassword)){
    jQuery.validationEngine.addPromptError(prefijoControl + "txtPassword", "* Este campo es requerido");
  }
  else{
    if(!IsValid_CaracteresPermitidos(txtPassword)){
      jQuery.validationEngine.addPromptError(prefijoControl + "txtPassword", "* Contiene caracteres no permitidos: " + CARACTERES_NO_VALIDOS_SIN_SEPARADOR);
    }
    else if(txtPassword.value != txtRepetirPassword.value){
      jQuery.validationEngine.addPromptError(prefijoControl + "txtRepetirPassword", "* La clave no coincide");
    }
    else{
      jQuery.validationEngine.removePrompt(prefijoControl + "txtPassword");
      jQuery.validationEngine.removePrompt(prefijoControl + "txtRepetirPassword");
    }
  }

  var retorno = jQuery(NOMBRE_FORM_PRADO_JQUERY).validationEngine({returnIsValid: true, promptPosition:"topRight"});
  if (retorno) {
    var textoModal = generarTextoHtmlModal("Procesando, espere un momento por favor...");
    jQuery.modal(textoModal,{minHeight: HEIGHT_MENSAJE_RESPUESTA, minWidth: WIDTH_MENSAJE_RESPUESTA});
  }

  return retorno;

}

//-------------------------------------------------------------------------------------
//Descripcion : muestra controles especiales por perfil
//Por         : VSR, 25/12/2011
function mostrarControlesEspeciales(){
  var txtLlavePerfil = document.getElementById("txtLlavePerfil");
  var llavePerfil = txtLlavePerfil.value;

  visibleTodosControles(false);
  switch (llavePerfil) {
    case KEY_PERFIL_WORKFLOW:
      visibleControlesWorkflow(true);
      break;
    default:
      visibleTodosControles(false);
      break;
  }

}

//-------------------------------------------------------------------------------------
//Descripcion : muestra u oculta todos los controles especiales
//Por         : VSR, 25/12/2011
function visibleTodosControles(esVisible){
  visibleControlesWorkflow(esVisible);
}

//-------------------------------------------------------------------------------------
//Descripcion : valida campos especiales segun el perfil seleccionado
//Por         : VSR, 25/12/2011
function validarCamposEspeciales() {
  var txtLlavePerfil = document.getElementById("txtLlavePerfil");
  var llavePerfil = txtLlavePerfil.value;

  switch (llavePerfil) {
    case KEY_PERFIL_WORKFLOW:
      validaControlesWorkflow();
      break;
    default:
      //no hace nada
      break;
  }

}

//-------------------------------------------------------------------------------------
//Descripcion : muestra u oculta los controles del perfil Workflow
//Por         : VSR, 25/12/2011
function visibleControlesWorkflow(esVisible){
  var hControlesWorkflow = document.getElementById("hControlesWorkflow");
  hControlesWorkflow.style.display = (esVisible) ? "block" : "none";
}

//-------------------------------------------------------------------------------------
//Descripcion : muestra u oculta los controles del perfil Workflow
//Por         : VSR, 25/12/2011
function validaControlesWorkflow(){
  var fuImagen = document.getElementById("fuImagen");

  //valida IMAGEN
  if(!IsValid_Empty(fuImagen)){
    if (!IsValid_FileImage(fuImagen)) {
      jQuery.validationEngine.addPromptError("fuImagen", "* El formato debe ser tipo imagen");
    } else {
      jQuery.validationEngine.removePrompt("fuImagen");
    }
  } else {
    jQuery.validationEngine.removePrompt("fuImagen");
  }

}
